﻿#ifndef YUTOPP_OAUTH_AUTHENTICATOR_BASE_HPP
#define YUTOPP_OAUTH_AUTHENTICATOR_BASE_HPP

#include "../../../protocol.hpp"
#include "../core_traits.hpp"

#include <boost/mpl/if.hpp>
#include <boost/utility/enable_if.hpp>

namespace webapp
{
	namespace oauth
	{
		template<typename Derived, typename Protocol, typename Policy, typename = void>
		class basic_authenticator;

		template<typename Protocol, typename Policy, typename = void>
		class common_authenticator;

		namespace detail
		{
			template<typename Protocol, typename R>
			struct return_val
				: boost::mpl::if_<
					protocol::is_sync_connection<Protocol>,
					R,
					void
				>
			{};
		}
	}
}


#endif /*YUTOPP_OAUTH_AUTHENTICATOR_BASE_HPP*/
